package com.itheima.boot.reggie.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 * @author chenzhuoze
 * @since 2023年02月25日
 */

/**
 * 视图映射器
 */
@Slf4j
@Configuration // 配置类
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置哪些静态资源 应该进行放行
     *    请求达到 核心控制器之后 SpringMVC
     *       所有请求都会到达  DispatcherServlet
     *      默认的规则 是根据你路径---匹配处理器
     *            Controller类中 @RequestMapping("/login")!!!
     *      静态页面资源  有对应的处理器吗???
     *         静态资源访问路径   其实 就应该 匹配上对应的静态资源就可以了
     *         /backend/index.html
     *         写一个 支持 进行资源自定义映射的类
     *         extends WebMvcConfigurationSupport
     *         重写  addResourceHandlers  资源处理
     *
     *         如果请求的是  /backend/ 里面的路径
     *                    让这个路径 映射到 静态资源文件上
     *         设置 静态资源 映射路径
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始进行静态资源映射");
                                    // 路径的匹配规则
        registry.addResourceHandler("/backend/**")
                                    // 上面的路径 去下面这个位置找
                .addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**")
                .addResourceLocations("classpath:/front/");
    }
}
